"""
@name : zuoye
@author : chenlu
@projectname: 联合国数据爬取.py
"""
# 使用reduce取出lst里的数字 --> 12349
from functools import reduce
list1 = ['a', '1', '2bb', '234', '', '9', '3.0']
def func1(x, y):
    if str(x).isdigit() and str(y).isdigit():
        return str(x) + str(y)
    elif str(x).isdigit():
        return int(x)
    elif str(y).isdigit():
        return int(y)
print(reduce(func1, list1))

# 有以下列表:list=[7, -8, 5, 4, 0, -2, -5]
# • 正数在前负数在后 • 整数从小到大 • 负数从大到小
list=[7, -8, 5, 4, 0, -2, -5]
print(sorted(list, key=lambda x: x*-10 if x <= 0 else x))

# 这是一个字符串排序，排序规则：小写<大写<奇数<偶数
# s = 'asdf234GDSdsf23'  排序:小写-大写-奇数-偶数 • 原理：先比较元组的第一个值，FALSE

s = 'asdf234GDSdsf23'
s2 = "".join(sorted(s, key=lambda x: (x.isdigit(), x.isdigit() and int(x) % 2 == 0, x.isupper(), x)))
print(s2)